Load Testing Tools: ab va wrk
Kirish
Load testing — bu web server yoki API’ning yuk ostida qanday ishlashini, maksimal imkoniyatlarini va barqarorligini aniqlash uchun amalga oshiriladigan test jarayonidir. Linuxda eng ko‘p ishlatiladigan load testing vositalaridan ikkitasi — ab (ApacheBench) va wrk.
ab (ApacheBench)
ab haqida
ab — Apache HTTP serveri bilan birga keladigan, lekin har qanday HTTP serverni test qilish uchun ishlatiladigan oddiy va kuchli utilita.
O‘rnatish
Debian/Ubuntu:
sudo apt install apache2-utils
Asosiy foydalanish
Oddiy test:
ab -n 1000 -c 50 http://localhost/
-n 1000— jami 1000 so‘rov yuboriladi-c 50— bir vaqtning o‘zida 50 ta so‘rov yuboriladi
Natijalarni tahlil qilish
ab natijasida quyidagi ko‘rsatkichlar olinadi:
- Requests per second (RPS)
- Time per request
- Transfer rate
- Failed requests
Amaliy misol
API endpointni test qilish:
ab -n 5000 -c 100 -H "Authorization: Bearer TOKEN" https://api.example.com/v1/data
wrk
wrk haqida
wrk — zamonaviy, yuqori samarali HTTP load testing vositasi. Ko‘p yadroli protsessorlardan to‘liq foydalanadi va Lua skriptlar orqali testlarni kengaytirish mumkin.
O‘rnatish
Debian/Ubuntu:
sudo apt install wrk
Yoki manba koddan:
git clone https://github.com/wg/wrk.git
cd wrk
make
sudo cp wrk /usr/local/bin/
Asosiy foydalanish
Oddiy test:
wrk -t4 -c100 -d30s http://localhost:8080/
-t4— 4 ta thread ishlatiladi-c100— 100 ta bir vaqtlik ulanish-d30s— 30 soniya davomida test
Natijalarni tahlil qilish
wrk natijasida quyidagilar olinadi:
- Requests/sec
- Latency (kechikish)
- Transfer/sec
- Connection statistics
Amaliy misol
POST so‘rov yuborish uchun:
wrk -t2 -c50 -d60s -s post.lua http://localhost/api/v1/upload
post.lua — maxsus Lua skript, POST body va headerlarni belgilash uchun.
Lua skript misoli:
-- post.lua
wrk.method = "POST"
wrk.body = '{"name":"test"}'
wrk.headers["Content-Type"] = "application/json"
Foydali maslahatlar
- Testlarni turli so‘rov soni va ulanishlar bilan bajaring.
- Server monitoringini parallel olib boring (CPU, RAM, tarmoq).
- Test natijalarini saqlang va solishtiring.
- Xatoliklarni va kechikishlarni tahlil qiling.
Xulosa
ab va wrk — Linuxda web server va API’larni yuk ostida test qilish uchun eng qulay va samarali vositalar. Amaliyotda har ikkisini ham ishlatib, natijalarni solishtirish va server konfiguratsiyasini